home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Whiteline: delta
/
whiteline CD Series - delta.iso
/
whitelin
/
share
/
stella
/
png_stm.txt
< prev
next >
Wrap
Text File
|
1995-11-25
|
9KB
|
250 lines
Readme zum Modul "PNG for STELLA"
---------------------------------
(c) 1995 Alexander Lorenz
Version 1.03 (09.10.1995)
-------------------------
- Minimale Änderungen.
Version 1.03 (05.10.1995)
-------------------------
- Anpassungen an neue Dokumentverwaltung/Struktur von STELLA V2.4.
Version 1.02 (20.09.1995)
-------------------------
- Anpassungen an STELLA V2.3a.
- Alle Speicheranforderungen und -freigaben werden nun via Stella-Funktionen
getätigt.
- Modul komplett eingedeutscht :-)
- Bug gefixed, wodurch Interlaced-Bilder verstümmelt eingelesen wurden.
- Bug gefixed, der Textinformationen mit Nullbytes erzeugt hat.
- STELLA-Variablenname des Moduls geändert in "PNG_CONFIG".
- Anpassungen an STELLA V2.2ß:
- Fehlercodes werden jetzt vom Modul gesetzt,
- Konfigurationsdialog herausgeführt,
- progress_bar-Abbruch wird als Fehlercode eingetragen.
- Zeilenbuffergröße auf das zu speichernde Format angepasst.
- Bug gefixed, der beim Kodieren über den Zeilenbuffer hinauslaß.
- Das Schreiben von PNG-Files ist nun unter allen STELLA-Versionen möglich.
- Das Modul hat nun einen Konfigurationsdialog, in dem einige Optionen gesetzt
werden können. Die Einstellungen werden STELLA übergeben; sie können mit der
STELLA-Konfiguration gesichert werden.
Kompressionsrate: je schlechter desto schneller.
TC als Grauwert : Truecolor-Bilder werden als PNG-Graustufenbild gesichert.
Paletten-Bilder können mittels den STELLA-Modulen in
Graustufen gewandelt werden. Das PNG-Modul erkennt diese
Bilder selbständig.
Interlaced : Bilder werden in sieben Ebenen gespeichert. Näheres hierzu
siehe unten.
mit Textinfos : die Textinformationen im Dialog "Dokument Information"
werden in das PNG-File geschieben.
- Truecolor-Bilder können nun im PNG-Graustufenformat geschrieben werden.
Bei der Umrechnung von Farbe->Grauswert werden die Werte des Moduls
"Graustufenberechnung" verwendet.
Zusätzlich setzt bzw. beachtet das Modul das Grauflag (doc->grey) in der
Dokumentstruktur; wenn es gesetzt ist, erzeugt das Modul ein PNG-File im
Graustufenformat.
- Texte aus doc->info_text werden nun in das PNG-File geschrieben.
Das Modul analysiert den Text auf folgende Schlüsselwörter, die für PNGs
genormt sind:
- "Title" : kurzer Titel oder Überschrift des Bildes (eine Zeile)
- "Author" : Name des Bild-Erzeugers
- "Copyright" : Copyright Hinweis
- "Description": Beschreibung des Bildes
- "Software" : Software die zur Erzeugung des Bildes verwendet wurde
- "Disclaimer" : Rechtlicher Hinweis
- "Warning" : Warnung bzgl. des Bildinhaltes
- "Source" : Verwendetes Gerät zur Erzeugung des Bildes
- "Comment" : Beliebiger Kommentar
Ein Schlüsselwort wird nur erkannt, wenn es allein in einer Zeile steht!
- Code optimiert und überflüssige Routinen entfernt, wodurch das Modul etwas
kleiner wurde.
- Monochrome Bilder werden nun vom Modul selbst VDI/PNG-konform gewandelt.
- Bug gefixed, der das erste Pixel bei ungerader Bildbreite verschwinden ließ.
(nochmals sorry, Tommi :-))
- is_registered() wird nun korrekt aufgerufen (sorry, Tommi :-))
Unter öffentlichen STELLA-Versionen kann ein geladenes PNG-Bild nicht
gespeichert werden.
Version 1.00 (18.08.1995)
-------------------------
- Bug in der Berechnung der korrekten Palettenwerte gefixed.
- is_registered() wird nach dem Lesen aufgerufen, und doc->dont_save gesetzt,
falls FALSE zurückgeliefert wird.
- GAMMA-Korrektur-Infos werden weiterhin ignoriert.
- Textinformationen in doc->info_text werden noch nicht geschrieben.
- Interlaced-Bilder können nun auch geschrieben werden. Seltsamerweise
verlieren die so gespeicherten Bilder erheblich an Qualität. Das Problem ist
bisher leider noch nicht lokalisiert, weshalb von der Benutzung abgeraten
wird! (Default: aus)
- Interner Buffer für Kompression/Dekompression von 8 auf 32KB erhöht.
Bringt beim Lesen und Schreiben je nach Bild/Bildtyp ca. 5-15% mehr Speed.
Des weiteren werden die erzeugen Files kleiner (weniger IDAT/IEND).
Eine weitere Erhöhung auf 48, 64 und 128KB brachten nicht mehr Speed. Bei
kleineren Bildern (~30K) wurde die Dekomprimierung sogar langsamer.
- Truecolor-PNGs (auch mit Alpha-Channel) werden jetzt vom Modul beim Laden
selbst in das Standardformat gewandelt, ohne 'set_line'-Aufrufe (sorry,
Tommi :-)). Bringt ca. 5-10% mehr Speed.
Version 0.99 (15.08.1995)
-------------------------
- Kleine Anpassung an STELLA 2.2: progress_bar wird jetzt mit NULL-Pointer
gefüttert.
- Paletten- und Truecolor-Bilder können nun auch im PNG-Format geschrieben
werden.
- RGB-Daten werden beim Schreiben direkt aus der DOC-Struktur entnommen
(bringt ca. 10% mehr Speed).
- GAMMA-Korrektur-Infos werden weder beim Lesen noch beim Schreiben beachtet.
- Textinformationen in der DOC-Struktur werden noch nicht in das PNG-File
übernommen.
Version 0.92 (12.08.1995)
-------------------------
- Dekomprimierung generell etwas beschleunigt.
- Modul um ca. 5K kleiner bekommen.
- Zusätzliche 68020er-Version erstellt. Ist im allgemeinen ca. 10-15%
schneller, bei einigen PNGs erstaunlicherweise etwa 10% langsamer...
- Chunks 'bKGD' (background) und 'tRNS' (transparency) werden jetzt
ausgewertet.
- GAMMA-Korrekturen werden noch immer nicht berücksichtigt.
- Bugfix: PNGs, die keine waren, wurden zwar erkannt, aber das Filehandle
wurde nicht geschlossen.
Version 0.91 (09.08.1995)
-------------------------
- RGB-Daten werden jetzt für STELLA 2.1ß nach BGR gewandelt, und in den
unteren 3 Bytes des 'long' von 'set_line' übergeben.
- Alpha-Channel, Transparent-Infos und GAMMA-Korrekturen werden z.Zt. noch
ignoriert.
- tEXt-Chunks werden jetzt gesammelt unter 'info_text' der DOC-Struktur
übergeben.
- Monochrome Bitmaps (bit_depth = 1) werden unbehandelt an STELLA
weitergegeben.
- Ausgaben werden jetzt nur noch durch die STELLA-Funktion 'progress_bar'
getätigt. 'printf' sollten keine durchgeführt werden :-)
- Der Button 'Abbruch' in der Dialogbox von 'progress_bar' wird ausgewertet
und ggf. die Funktion abgebrochen.
Allgemeine Anmerkung
--------------------
Sollte jemand PNG-Bilder besitzen, die von diesem Modul nicht bzw. fehlerhaft
gelesen werden, so möchte er sich bitte mit mir in Verbindung setzen, damit
diese Probleme/Bugs beseitigt werden können. Vielen Dank.
Anmerkungen zum PNG-Format
--------------------------
- PNG ist das offizielle Nachfolgeformat für GIF. GIF verwendet ein
Kompressionsverfahren, auf welches seit kurzem eine Lizenzgebühr fällig ist.
Da dies für frei verteilbare Bilder und Public-Domain-Programme nicht
sinnvoll ist, wurde Ende 1994/Anfang 1995 von CompuServe PNG ('Portable
Network Graphics', ausgesprochen 'Ping') als Nachfolgeformat vereinbart und
veröffentlicht.
PNG bietet u.a. folgende Features:
- Truecolor-Bilder mit bis zu 48 Bits pro Pixel,
- Graustufen-Bilder mit bis zu 16 Bits pro Pixel,
- Textinformationen können beigefügt werden,
- Sehr robust wg. komplexen CRC-Prüfungen,
- Effektive, 100% verlustfreie Kompression.
- Es ist möglich, das trotz besserer Kompressionsrate, die erzeugten Dateien
größer sind, als bei schlechterer Kompressionsrate. Speziell bei Truecolor-
Bildern kann dies passieren.
- Für Truecolor-Bilder ist PNG auf den ersten Blick nicht das ideale Format.
Allerdings ist mir kein anderes Format bekannt, das Truecolor-Bilder
verlustfrei so kompakt speichern kann, wie PNG. JPEG erzeugt zwar, je nach
Qualität, z.T. erheblich kleinere Dateien, allerdings komprimiert JPEG nicht
verlustfrei (was für einige Anwendungen notwendig ist).
- Interlaced-Bilder sind vor allem im Internet verbreitet (speziell im WWW).
Sie haben den Vorteil, sieben kleine 'Ebenen' des Bildes zu enthalten, von
denen eine Ebene nach der anderen übereinandergelegt wird. Erfahrene User
können meist schon nach den ersten Ebenen entscheiden, ob sie den Aufbau des
Bildes abwarten möchten oder nicht. Dadurch, das in der PNG-Datei mehrere
'Ebenen' abgelegt werden, wird eine interlaced-Datei natürlich größer, als
eine non-interlaced-Datei.
Hinweis/Danksagungen
--------------------
'PNG for STELLA' basiert auf der 'libpng reference library' von Guy Eric
Schalnat, Group 42, Inc., sowie der 'zlib general purpose compression library'
von Jean-loup Gailly und Mark Adler.
Ein großes Dankeschön geht an Thomas Künneth, ohne dessen Support (und STELLA)
dieses Modul nie Realität geworden wäre. THANKS!
Modul-Status
------------
Das Modul 'PNG for STELLA' ist Public Domain. Es darf allein oder im STELLA-
Paket frei in Mailboxen, auf Diskette oder CD-ROM verbreitet werden. Ein
Verkauf ist nicht gestattet. Der Autor behält sich alle Rechtlichen Schritte
vor!
Autor
-----
E-Mail (bevorzugt):
MausNet: Alexander Lorenz @ N
Internet: Alexander_Lorenz@n.maus.de
Sackpost (kann dauern):
Alexander Lorenz
Diemantstein 127
86657 Bissingen
[END]